import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;

/**
 * 判断链表是否是回文结构。
 * 添加到一个数组里面，然后拷贝一个新的数组，新的数组进行翻转。
 * 然后两个数组都从0开始对比值是否相同。
 */
public class JavaDemo9 {
    public static void main(String[] args) {
        int[] arrays = {1, 2, 3, 2, 1, 0};
        ListNode head = new ListNode(0);
        ListNode next = head;
        for (int i = 0; i < arrays.length; i++) {
            ListNode node = new ListNode(arrays[i]);
            next.next = node;
            next = node;
        }
        ListNode showParent = head;
        while (showParent != null) {
            System.out.println(showParent.val);
            showParent = showParent.next;
        }
        System.out.println("--------------"+palindromic(head));

    }

    private static boolean palindromic(ListNode head) {
        ArrayList<Integer> nodes=new ArrayList<>();
        while (head!=null){
            nodes.add(head.val);
            head=head.next;
        }
        ArrayList<Integer> temp;
        temp= (ArrayList<Integer>) nodes.clone();
        // 翻转
        Collections.reverse(temp);
        for (int i=0;i<nodes.size();i++){
            if (!Objects.equals(nodes.get(i), temp.get(i))){
                return false;
            }
        }
        return true;
    }



}
